package com.jxs.easysecurity.token;

import com.jxs.easysecurity.session.LoginResult;
import com.jxs.easysecurity.auth.Authentication;

/**
 * 当访问凭证创建后，你可以有机会修改这个凭证内容。
 * 如果你修改了原生的凭证信息，那么你也应该提供一个{@link OnAccessTokenResolveListener}来还原它。
 * @see OnAccessTokenResolveListener
 * @see com.jxs.easysecurity.session.SessionManager
 * @author jiangxingshang
 * @since 17/6/20
 */
@FunctionalInterface
public interface OnAccessTokenBuildListener {

    /**
     * @param loginResult
     * @param authentication
     * @param token 已经加密过的凭证信息
     * @return 返回凭证信息
     */
    String build(LoginResult loginResult, Authentication authentication, String token);
}
